import { isFunction } from 'vtils';

export default async function promiseIterator<T>(
  list: T[],
  handler?: (value: T, index: number, array: T[]) => unknown
) {
  const _handler = isFunction(handler)
    ? handler // 传入的callback
    : (cb: T) => {
        // 没有传入callback，但是每个item可为一个function
        return isFunction(cb) ? cb() : cb;
      };
  return await Promise.all(list.map(_handler));
}
